Repository navigation
feat(oci/spegel): update 0.6.0 ➼ 0.8.0 - #5525
Open
tinfoild[bot] wants to merge 1 commit into
Open
tinfoild[bot] wants to merge 1 commit into
tinfoild[bot] wants to merge 1 commit into
Conversation
Contributor
Author
kube/helmrelease/out00--- HelmRelease: kube-system/spegel ConfigMap: kube-system/spegel-dashboard
+++ HelmRelease: kube-system/spegel ConfigMap: kube-system/spegel-dashboard
@@ -1,1322 +0,0 @@
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
- name: spegel-dashboard
- namespace: kube-system
- labels:
- app.kubernetes.io/name: spegel
- app.kubernetes.io/instance: spegel
- app.kubernetes.io/managed-by: Helm
-data:
- spegel.json: |-
- {
- "__inputs": [
- {
- "name": "datasource",
- "label": "datasource",
- "description": "",
- "type": "datasource",
- "pluginId": "prometheus",
- "pluginName": "Prometheus"
- }
- ],
- "__elements": {},
- "__requires": [
- {
- "type": "grafana",
- "id": "grafana",
- "name": "Grafana",
- "version": "11.5.2"
- },
- {
- "type": "datasource",
- "id": "prometheus",
- "name": "Prometheus",
- "version": "1.0.0"
- },
- {
- "type": "panel",
- "id": "stat",
- "name": "Stat",
- "version": ""
- },
- {
- "type": "panel",
- "id": "table",
- "name": "Table",
- "version": ""
- },
- {
- "type": "panel",
- "id": "text",
- "name": "Text",
- "version": ""
- },
- {
- "type": "panel",
- "id": "timeseries",
- "name": "Time series",
- "version": ""
- }
- ],
- "annotations": {
- "list": [
- {
- "builtIn": 1,
- "datasource": {
- "type": "grafana",
- "uid": "-- Grafana --"
- },
- "enable": true,
- "hide": true,
- "iconColor": "rgba(0, 211, 255, 1)",
- "name": "Annotations & Alerts",
- "target": {
- "limit": 100,
- "matchAny": false,
- "tags": [],
- "type": "dashboard"
- },
- "type": "dashboard"
- }
- ]
- },
- "description": "Spegel is a pull only OCI registry which runs locally on every Node in the Kubernetes cluster. Containerd is configured to use the local registry as a mirror, which would serve the image from within the cluster or from the source registry.",
- "editable": true,
- "fiscalYearStartMonth": 0,
- "graphTooltip": 0,
- "id": null,
- "links": [],
- "panels": [
- {
- "collapsed": false,
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 0
- },
- "id": 24,
- "panels": [],
- "type": "row"
- },
- {
- "datasource": {
- "type": "prometheus",
- "uid": ""
- },
- "description": "",
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "thresholds"
- },
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "transparent",
- "value": null
- }
- ]
- }
- },
- "overrides": []
- },
- "gridPos": {
- "h": 4,
- "w": 3,
- "x": 0,
- "y": 1
- },
- "id": 11,
- "options": {
- "colorMode": "none",
- "graphMode": "area",
- "justifyMode": "auto",
- "orientation": "auto",
- "percentChangeColorMode": "standard",
- "reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
- "fields": "",
- "values": false
- },
- "showPercentChange": false,
- "textMode": "auto",
- "wideLayout": true
- },
- "pluginVersion": "11.5.2",
- "targets": [
- {
- "datasource": {
- "type": "prometheus",
- "uid": ""
- },
- "editorMode": "code",
- "expr": "count(spegel_advertised_keys{instance=~\"\"})",
- "hide": false,
- "legendFormat": "__auto",
- "range": true,
- "refId": "A"
- }
- ],
- "title": "Registry",
- "transparent": true,
- "type": "stat"
- },
- {
- "datasource": {
- "type": "prometheus",
- "uid": ""
- },
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "thresholds"
- },
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "transparent",
- "value": null
- }
- ]
- }
- },
- "overrides": []
- },
- "gridPos": {
- "h": 4,
- "w": 3,
- "x": 3,
- "y": 1
- },
- "id": 29,
- "options": {
- "colorMode": "none",
- "graphMode": "area",
- "justifyMode": "auto",
- "orientation": "auto",
- "percentChangeColorMode": "standard",
- "reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
- "fields": "",
- "values": false
- },
- "showPercentChange": false,
- "textMode": "auto",
- "wideLayout": true
- },
- "pluginVersion": "11.5.2",
- "targets": [
- {
- "datasource": {
- "type": "prometheus",
- "uid": ""
- },
- "editorMode": "code",
- "expr": "sum(kubelet_node_name{job=\"kubelet\"})",
- "legendFormat": "__auto",
- "range": true,
- "refId": "A"
- }
- ],
- "title": "Running Nodes",
- "transparent": true,
- "type": "stat"
- },
- {
- "datasource": {
- "type": "prometheus",
- "uid": ""
- },
- "fieldConfig": {
- "defaults": {
- "links": [],
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "transparent",
- "value": null
- }
- ]
- },
- "unit": "none"
- },
- "overrides": []
- },
- "gridPos": {
- "h": 4,
- "w": 3,
- "x": 6,
- "y": 1
- },
- "id": 22,
- "options": {
- "colorMode": "none",
- "graphMode": "area",
- "justifyMode": "auto",
- "orientation": "auto",
- "percentChangeColorMode": "standard",
- "reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
- "fields": "",
- "values": false
- },
- "showPercentChange": false,
- "textMode": "auto",
- "wideLayout": true
- },
- "pluginVersion": "11.5.2",
- "targets": [
- {
- "datasource": {
- "type": "prometheus",
- "uid": ""
- },
- "editorMode": "code",
- "expr": "sum(kubelet_running_containers)",
- "format": "time_series",
- "intervalFactor": 2,
- "legendFormat": "{{instance}}",
- "range": true,
- "refId": "A"
- }
- ],
- "title": "Running Containers",
- "transparent": true,
- "type": "stat"
- },
- {
- "datasource": {
- "type": "prometheus",
- "uid": ""
- },
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "thresholds"
- },
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "transparent",
- "value": null
- }
- ]
- }
- },
- "overrides": []
- },
- "gridPos": {
- "h": 4,
- "w": 3,
- "x": 9,
- "y": 1
- },
- "id": 20,
- "options": {
- "colorMode": "none",
- "graphMode": "area",
- "justifyMode": "auto",
- "orientation": "auto",
- "percentChangeColorMode": "standard",
- "reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
- "fields": "",
- "values": false
- },
- "showPercentChange": false,
- "textMode": "auto",
- "wideLayout": true
- },
- "pluginVersion": "11.5.2",
- "targets": [
- {
- "datasource": {
- "type": "prometheus",
- "uid": ""
- },
- "editorMode": "code",
- "expr": "sum(kubelet_running_pods)",
- "legendFormat": "__auto",
- "range": true,
- "refId": "A"
- }
- ],
- "title": "Running Pods",
- "transparent": true,
- "type": "stat"
- },
- {
- "datasource": {
- "type": "prometheus",
- "uid": ""
- },
- "description": "",
- "fieldConfig": {
- "defaults": {
- "color": {
- "fixedColor": "green",
- "mode": "fixed"
- },
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
- },
- "unit": "ms"
- },
- "overrides": []
- },
- "gridPos": {
- "h": 4,
- "w": 3,
- "x": 12,
- "y": 1
- },
- "id": 12,
- "options": {
- "colorMode": "value",
- "graphMode": "area",
- "justifyMode": "auto",
- "orientation": "auto",
- "percentChangeColorMode": "standard",
- "reduceOptions": {
- "calcs": [
- "lastNotNull"
- ],
- "fields": "",
- "values": false
- },
- "showPercentChange": false,
- "textMode": "auto",
- "wideLayout": true
- },
- "pluginVersion": "11.5.2",
- "targets": [
- {
- "datasource": {
- "type": "prometheus",
- "uid": ""
- },
- "editorMode": "code",
- "exemplar": false,
- "expr": "max(rate(http_request_duration_seconds_bucket{job=\"\"}[]))",
- "format": "table",
- "instant": true,
- "legendFormat": "__auto",
- "range": false,
- "refId": "A"
- }
- ],
- "title": "Max Request Duration",
- "transparent": true,
- "type": "stat"
- },
- {
- "gridPos": {
- "h": 4,
- "w": 3,
- "x": 21,
- "y": 1
- },
- "id": 2,
- "options": {
- "code": {
- "language": "plaintext",
- "showLineNumbers": false,
- "showMiniMap": false
- },
- "content": "<br>\n<div style=\"text-align: center;\"><a href=\"https://github.com/XenitAB/spegel\" target=\"_blank\">Spegel at GitHub</a> </div>\n\n",
- "mode": "html"
- },
- "pluginVersion": "11.5.2",
- "title": "Github link",
- "transparent": true,
- "type": "text"
- },
- {
- "collapsed": false,
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 5
- },
- "id": 9,
- "panels": [],
- "repeat": "datasource",
- "type": "row"
- },
- {
- "datasource": {
- "type": "prometheus",
- "uid": ""
- },
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "thresholds"
- },
- "custom": {
- "align": "center",
- "cellOptions": {
- "type": "auto"
- },
- "inspect": false
- },
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
- }
- },
- "overrides": [
- {
- "matcher": {
- "id": "byName",
- "options": "instance"
- },
- "properties": [
- {
- "id": "custom.width",
- "value": 226
- }
- ]
- },
- {
- "matcher": {
- "id": "byName",
- "options": "prometheus"
- },
- "properties": [
- {
- "id": "custom.width",
- "value": 296
- }
- ]
- }
- ]
- },
- "gridPos": {
- "h": 7,
- "w": 12,
- "x": 0,
- "y": 6
- },
- "id": 16,
- "options": {
- "cellHeight": "sm",
- "footer": {
- "countRows": false,
- "enablePagination": false,
- "fields": "",
- "reducer": [
- "sum"
- ],
- "show": false
- },
- "frameIndex": 0,
- "showHeader": true,
- "sortBy": []
- },
- "pluginVersion": "11.5.2",
- "targets": [
- {
- "datasource": {
- "type": "prometheus",
- "uid": ""
- },
- "editorMode": "code",
- "exemplar": false,
- "expr": "spegel_advertised_images{job=~\"\",instance=~\"\"}",
- "format": "table",
- "instant": true,
- "legendFormat": "__auto",
- "range": false,
- "refId": "A"
- },
- {
- "datasource": {
- "type": "prometheus",
- "uid": ""
- },
- "editorMode": "code",
- "exemplar": false,
- "expr": "spegel_advertised_keys{job=~\"\",instance=~\"\"} ",
- "format": "table",
- "hide": false,
- "instant": true,
- "legendFormat": "__auto",
- "range": false,
- "refId": "B"
- }
- ],
- "transformations": [
- {
- "id": "filterFieldsByName",
- "options": {
- "include": {
- "names": [
- "pod",
- "Value #A",
- "Value #B"
- ]
- }
- }
- },
- {
- "id": "merge",
- "options": {}
- },
- {
- "id": "renameByRegex",
- "options": {
- "regex": "Value #A",
- "renamePattern": "Container cache"
- }
- },
- {
- "id": "renameByRegex",
- "options": {
- "regex": "Value #B",
- "renamePattern": "Layers cache"
- }
- }
- ],
- "transparent": true,
- "type": "table"
- },
- {
- "datasource": {
- "type": "prometheus",
- "uid": ""
- },
- "description": "",
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
- },
- "custom": {
- "axisBorderShow": false,
- "axisCenteredZero": false,
- "axisColorMode": "series",
- "axisLabel": "",
- "axisPlacement": "auto",
- "barAlignment": 0,
- "barWidthFactor": 0.6,
- "drawStyle": "line",
- "fillOpacity": 10,
- "gradientMode": "opacity",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": false
- },
- "insertNulls": false,
- "lineInterpolation": "smooth",
- "lineStyle": {
- "fill": "solid"
- },
- "lineWidth": 2,
- "pointSize": 1,
- "scaleDistribution": {
- "type": "linear"
- },
- "showPoints": "auto",
- "spanNulls": false,
- "stacking": {
- "group": "A",
- "mode": "none"
- },
- "thresholdsStyle": {
- "mode": "off"
- }
- },
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
- }
- },
- "overrides": []
- },
- "gridPos": {
- "h": 7,
- "w": 12,
- "x": 12,
- "y": 6
- },
- "id": 6,
- "options": {
- "legend": {
- "calcs": [],
- "displayMode": "list",
- "placement": "bottom",
- "showLegend": true
- },
- "tooltip": {
- "hideZeros": false,
- "mode": "single",
- "sort": "none"
- }
- },
- "pluginVersion": "11.5.2",
- "targets": [
- {
- "datasource": {
- "type": "prometheus",
- "uid": ""
- },
- "editorMode": "code",
- "exemplar": false,
- "expr": "spegel_advertised_images{job=~\"\",instance=~\"\"}",
- "format": "time_series",
- "instant": false,
- "legendFormat": "{{ instance }}",
- "range": true,
- "refId": "A"
- }
- ],
- "title": "Container Images Advertised ",
- "transparent": true,
- "type": "timeseries"
- },
- {
- "datasource": {
- "type": "prometheus",
- "uid": ""
- },
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
- },
- "custom": {
- "axisBorderShow": false,
- "axisCenteredZero": false,
- "axisColorMode": "series",
- "axisLabel": "",
- "axisPlacement": "auto",
- "barAlignment": 0,
- "barWidthFactor": 0.6,
- "drawStyle": "line",
- "fillOpacity": 36,
- "gradientMode": "opacity",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": false
- },
- "insertNulls": false,
- "lineInterpolation": "linear",
- "lineWidth": 1,
- "pointSize": 5,
- "scaleDistribution": {
- "type": "linear"
- },
- "showPoints": "never",
- "spanNulls": false,
- "stacking": {
- "group": "A",
- "mode": "normal"
- },
- "thresholdsStyle": {
- "mode": "off"
- }
- },
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
- }
- },
- "overrides": [
- {
- "matcher": {
- "id": "byName",
- "options": "requests"
- },
- "properties": [
- {
- "id": "color",
- "value": {
- "fixedColor": "#F2495C",
- "mode": "fixed"
- }
- },
- {
- "id": "custom.fillOpacity",
- "value": 0
- },
- {
- "id": "custom.lineWidth",
- "value": 2
- },
- {
- "id": "custom.stacking",
- "value": {
- "group": false,
- "mode": "normal"
- }
- }
- ]
- },
- {
- "matcher": {
- "id": "byName",
- "options": "limits"
- },
- "properties": [
- {
- "id": "color",
- "value": {
- "fixedColor": "#FF9830",
- "mode": "fixed"
- }
- },
- {
- "id": "custom.fillOpacity",
- "value": 0
- },
- {
- "id": "custom.lineWidth",
- "value": 2
- },
- {
- "id": "custom.stacking",
- "value": {
- "group": false,
- "mode": "normal"
- }
- }
- ]
- }
- ]
- },
- "gridPos": {
- "h": 7,
- "w": 12,
- "x": 0,
- "y": 13
- },
- "id": 28,
- "interval": "1m",
- "options": {
- "legend": {
- "calcs": [],
- "displayMode": "list",
- "placement": "bottom",
- "showLegend": false
- },
- "tooltip": {
- "hideZeros": false,
- "mode": "multi",
- "sort": "none"
- }
- },
- "pluginVersion": "11.5.2",
- "targets": [
- {
- "datasource": {
- "uid": ""
- },
- "editorMode": "code",
- "exemplar": false,
- "expr": "sum(node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{container=\"\"}) by (pod)",
- "format": "time_series",
- "instant": false,
- "intervalFactor": 2,
- "legendFormat": "{{ container }}",
- "range": true,
- "refId": "A",
- "step": 10
- }
- ],
- "title": "CPU Usage",
- "transparent": true,
- "type": "timeseries"
- },
- {
- "datasource": {
- "type": "prometheus",
- "uid": ""
- },
- "description": "",
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
- },
- "custom": {
- "axisBorderShow": false,
- "axisCenteredZero": false,
- "axisColorMode": "series",
- "axisLabel": "",
- "axisPlacement": "auto",
- "barAlignment": 0,
- "barWidthFactor": 0.6,
- "drawStyle": "line",
- "fillOpacity": 10,
- "gradientMode": "opacity",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": false
- },
- "insertNulls": false,
- "lineInterpolation": "smooth",
- "lineWidth": 2,
- "pointSize": 1,
- "scaleDistribution": {
- "type": "linear"
- },
- "showPoints": "auto",
- "spanNulls": false,
- "stacking": {
- "group": "A",
- "mode": "none"
- },
- "thresholdsStyle": {
- "mode": "off"
- }
- },
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
- }
- },
- "overrides": []
- },
- "gridPos": {
- "h": 7,
- "w": 12,
- "x": 12,
- "y": 13
- },
- "id": 7,
- "options": {
- "legend": {
- "calcs": [],
- "displayMode": "list",
- "placement": "bottom",
- "showLegend": true
- },
- "tooltip": {
- "hideZeros": false,
- "mode": "single",
- "sort": "none"
- }
- },
- "pluginVersion": "11.5.2",
- "targets": [
- {
- "datasource": {
- "type": "prometheus",
- "uid": ""
- },
- "editorMode": "code",
- "exemplar": false,
- "expr": "spegel_advertised_keys{job=~\"\",instance=~\"\"} ",
- "format": "time_series",
- "instant": false,
- "legendFormat": "{{ instance }}",
- "range": true,
- "refId": "A"
- }
- ],
- "title": "Images Layer Advertised ",
- "transparent": true,
- "type": "timeseries"
- },
- {
- "collapsed": false,
- "gridPos": {
- "h": 1,
- "w": 24,
- "x": 0,
- "y": 20
- },
- "id": 35,
- "panels": [],
- "title": "Kubelet",
- "type": "row"
- },
- {
- "datasource": {
- "type": "prometheus",
- "uid": ""
- },
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
- },
- "custom": {
- "axisBorderShow": false,
- "axisCenteredZero": false,
- "axisColorMode": "text",
- "axisLabel": "",
- "axisPlacement": "auto",
- "barAlignment": 0,
- "barWidthFactor": 0.6,
- "drawStyle": "line",
- "fillOpacity": 6,
- "gradientMode": "none",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": false
- },
- "insertNulls": false,
- "lineInterpolation": "linear",
- "lineWidth": 1,
- "pointSize": 5,
- "scaleDistribution": {
- "type": "linear"
- },
- "showPoints": "never",
- "spanNulls": false,
- "stacking": {
- "group": "A",
- "mode": "none"
- },
- "thresholdsStyle": {
- "mode": "off"
- }
- },
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
- },
- "unit": "ops"
- },
- "overrides": []
- },
- "gridPos": {
- "h": 10,
- "w": 12,
- "x": 0,
- "y": 21
- },
- "id": 31,
- "options": {
- "legend": {
- "calcs": [],
- "displayMode": "table",
- "placement": "right",
- "showLegend": true
- },
- "tooltip": {
- "hideZeros": false,
- "mode": "single",
- "sort": "none"
- }
- },
- "pluginVersion": "11.5.2",
- "targets": [
- {
- "datasource": {
- "type": "prometheus",
- "uid": ""
- },
- "editorMode": "code",
- "expr": "sum(rate(kubelet_runtime_operations_total{job=\"kubelet\", metrics_path=\"/metrics\", operation_type=~\"list_images|pull_image|start_container|list_images|list_containers|version|exec_sync|create_container\"}[])) by (operation_type)",
- "legendFormat": "__auto",
- "range": true,
- "refId": "A"
- }
- ],
- "title": "Kubelet Operation Rate",
- "transparent": true,
- "type": "timeseries"
- },
- {
- "datasource": {
- "type": "prometheus",
- "uid": ""
- },
- "fieldConfig": {
- "defaults": {
- "color": {
- "mode": "palette-classic"
- },
- "custom": {
- "axisBorderShow": false,
- "axisCenteredZero": false,
- "axisColorMode": "text",
- "axisLabel": "",
- "axisPlacement": "auto",
- "barAlignment": 0,
- "barWidthFactor": 0.6,
- "drawStyle": "line",
- "fillOpacity": 10,
- "gradientMode": "none",
- "hideFrom": {
- "legend": false,
- "tooltip": false,
- "viz": false
- },
- "insertNulls": false,
- "lineInterpolation": "linear",
- "lineWidth": 1,
- "pointSize": 5,
- "scaleDistribution": {
- "type": "linear"
- },
- "showPoints": "never",
- "spanNulls": false,
- "stacking": {
- "group": "A",
- "mode": "none"
- },
- "thresholdsStyle": {
- "mode": "off"
- }
- },
- "mappings": [],
- "thresholds": {
- "mode": "absolute",
- "steps": [
- {
- "color": "green",
- "value": null
- },
- {
- "color": "red",
- "value": 80
- }
- ]
- },
- "unit": "ops"
- },
- "overrides": []
- },
- "gridPos": {
- "h": 10,
- "w": 12,
- "x": 12,
- "y": 21
- },
- "id": 33,
- "options": {
- "legend": {
- "calcs": [],
- "displayMode": "list",
- "placement": "bottom",
- "showLegend": true
- },
- "tooltip": {
- "hideZeros": false,
- "mode": "multi",
- "sort": "none"
- }
- },
- "pluginVersion": "11.5.2",
- "targets": [
- {
- "datasource": {
- "uid": ""
- },
- "editorMode": "code",
- "expr": "sum(rate(kubelet_runtime_operations_errors_total{job=\"kubelet\", metrics_path=\"/metrics\",operation_type=~\"list_images|pull_image|start_container|list_images|list_containers|version|exec_sync|create_container\"}[])) by (operation_type)",
- "format": "time_series",
- "intervalFactor": 2,
- "legendFormat": "{{instance}} {{operation_type}}",
- "range": true,
- "refId": "A"
- }
- ],
- "title": "Kubelet Operation Error Rate",
- "transparent": true,
- "type": "timeseries"
- }
- ],
- "refresh": "30s",
- "schemaVersion": 40,
- "tags": [],
- "templating": {
- "list": [
- {
- "current": {},
- "includeAll": false,
- "label": "Data Source",
- "name": "datasource",
- "options": [],
- "query": "prometheus",
- "refresh": 1,
- "regex": "",
- "type": "datasource"
- },
- {
- "current": {
- "text": "registry",
- "value": "registry"
- },
- "description": "",
- "hide": 2,
- "includeAll": false,
- "label": "container",
- "name": "container",
- "options": [
- {
- "selected": true,
- "text": "registry",
- "value": "registry"
- }
- ],
- "query": "registry",
- "type": "custom"
- },
- {
- "current": {},
- "datasource": {
- "type": "prometheus",
- "uid": ""
- },
- "definition": "label_values(spegel_advertised_images,pod)",
- "description": "",
- "hide": 2,
- "includeAll": false,
- "label": "pod",
- "name": "pod",
- "options": [],
- "query": {
- "query": "label_values(spegel_advertised_images,pod)",
- "refId": "StandardVariableQuery"
- },
- "refresh": 1,
- "regex": "",
- "type": "query"
- },
- {
- "allowCustomValue": false,
- "current": {},
- "datasource": {
- "type": "prometheus",
- "uid": ""
- },
- "definition": "label_values(spegel_advertised_keys,job)",
- "hide": 2,
- "label": "job",
- "name": "job",
- "options": [],
- "query": {
- "qryType": 1,
- "query": "label_values(spegel_advertised_keys,job)",
- "refId": "PrometheusVariableQueryEditor-VariableQuery"
- },
- "refresh": 1,
- "regex": "",
- "type": "query"
- },
- {
- "current": {},
- "datasource": {
- "type": "prometheus",
- "uid": ""
- },
- "definition": "label_values(spegel_advertised_keys{job=\"\"},instance)",
- "includeAll": true,
- "label": "instance",
- "multi": true,
- "name": "instance",
- "options": [],
- "query": {
- "qryType": 1,
- "query": "label_values(spegel_advertised_keys{job=\"\"},instance)",
- "refId": "PrometheusVariableQueryEditor-VariableQuery"
- },
- "refresh": 2,
- "regex": "",
- "type": "query"
- }
- ]
- },
- "time": {
- "from": "now-3h",
- "to": "now"
- },
- "timepicker": {},
- "timezone": "",
- "title": "Spegel stateless cluster local OCI registry mirror",
- "uid": "1iY4QMJVk-psee",
- "gnetId": 18089,
- "version": 4,
- "weekStart": ""
- }
-
--- HelmRelease: kube-system/spegel Service: kube-system/spegel-registry
+++ HelmRelease: kube-system/spegel Service: kube-system/spegel-registry
@@ -5,21 +5,20 @@
name: spegel-registry
namespace: kube-system
labels:
app.kubernetes.io/name: spegel
app.kubernetes.io/instance: spegel
app.kubernetes.io/managed-by: Helm
- annotations:
- service.kubernetes.io/topology-mode: auto
spec:
type: NodePort
+ trafficDistribution: PreferSameNode
selector:
app.kubernetes.io/component: spegel
app.kubernetes.io/name: spegel
app.kubernetes.io/instance: spegel
ports:
- name: registry
port: 5000
targetPort: registry
- nodePort: 30021
+ nodePort: 30020
protocol: TCP
--- HelmRelease: kube-system/spegel Service: kube-system/spegel-bootstrap
+++ HelmRelease: kube-system/spegel Service: kube-system/spegel-bootstrap
@@ -12,11 +12,7 @@
selector:
app.kubernetes.io/component: spegel
app.kubernetes.io/name: spegel
app.kubernetes.io/instance: spegel
clusterIP: None
publishNotReadyAddresses: true
- ports:
- - name: router
- port: 5001
- protocol: TCP
--- HelmRelease: kube-system/spegel DaemonSet: kube-system/spegel
+++ HelmRelease: kube-system/spegel DaemonSet: kube-system/spegel
@@ -26,23 +26,22 @@
spec:
serviceAccountName: spegel
securityContext: {}
priorityClassName: system-node-critical
initContainers:
- name: configuration
- image: ghcr.io/spegel-org/spegel@sha256:82f5dd969ed74e3a9cfd6284045099a161778a0d85f9e01a234a62f15eb9d696
+ image: ghcr.io/spegel-org/spegel@sha256:b48194957bf9b5bdcea2700536a302ade23315082b05e5a44c0822f5c301850a
imagePullPolicy: IfNotPresent
securityContext:
readOnlyRootFilesystem: true
args:
- configuration
- --log-level=INFO
- --containerd-registry-config-path=/etc/cri/conf.d/hosts
- --mirror-targets
- - http://:29999
- - http://:30021
+ - http://:30020
- --resolve-tags=true
- --prepend-existing=false
env:
- name: NODE_IP
valueFrom:
fieldRef:
@@ -54,13 +53,13 @@
memory: 128Mi
volumeMounts:
- name: containerd-config
mountPath: /etc/cri/conf.d/hosts
containers:
- name: registry
- image: ghcr.io/spegel-org/spegel@sha256:82f5dd969ed74e3a9cfd6284045099a161778a0d85f9e01a234a62f15eb9d696
+ image: ghcr.io/spegel-org/spegel@sha256:b48194957bf9b5bdcea2700536a302ade23315082b05e5a44c0822f5c301850a
imagePullPolicy: IfNotPresent
securityContext:
readOnlyRootFilesystem: true
args:
- registry
- --log-level=INFO
@@ -73,32 +72,33 @@
- --containerd-namespace=k8s.io
- --containerd-registry-config-path=/etc/cri/conf.d/hosts
- --bootstrap-kind=dns
- --dns-bootstrap-domain=spegel-bootstrap.kube-system.svc.cluster.local.
- --containerd-content-path=/var/lib/containerd/io.containerd.content.v1.content
- --debug-web-enabled=true
+ - --data-dir=/var/lib/spegel
env:
- - name: DATA_DIR
- value: ''
- name: GOMEMLIMIT
valueFrom:
resourceFieldRef:
resource: limits.memory
divisor: 1
- name: NODE_IP
valueFrom:
fieldRef:
fieldPath: status.hostIP
ports:
- name: registry
containerPort: 5000
- hostPort: 29999
protocol: TCP
- - name: router
+ - name: router-tcp
containerPort: 5001
protocol: TCP
+ - name: router-quic
+ containerPort: 5001
+ protocol: UDP
- name: metrics
containerPort: 9090
protocol: TCP
startupProbe:
periodSeconds: 3
failureThreshold: 60
@@ -107,23 +107,29 @@
port: registry
readinessProbe:
httpGet:
path: /readyz
port: registry
volumeMounts:
+ - name: spegel-data
+ mountPath: /var/lib/spegel
- name: containerd-sock
mountPath: /run/containerd/containerd.sock
- name: containerd-content
mountPath: /var/lib/containerd/io.containerd.content.v1.content
readOnly: true
resources:
limits:
memory: 128Mi
requests:
memory: 128Mi
volumes:
+ - name: spegel-data
+ hostPath:
+ path: /var/lib/spegel
+ type: DirectoryOrCreate
- name: containerd-sock
hostPath:
path: /run/containerd/containerd.sock
type: Socket
- name: containerd-content
hostPath:
--- HelmRelease: kube-system/spegel DaemonSet: kube-system/spegel-cleanup
+++ HelmRelease: kube-system/spegel DaemonSet: kube-system/spegel-cleanup
@@ -27,14 +27,16 @@
app.kubernetes.io/instance: spegel
spec:
securityContext: {}
priorityClassName: system-node-critical
containers:
- name: cleanup
- image: ghcr.io/spegel-org/spegel@sha256:82f5dd969ed74e3a9cfd6284045099a161778a0d85f9e01a234a62f15eb9d696
+ image: ghcr.io/spegel-org/spegel@sha256:b48194957bf9b5bdcea2700536a302ade23315082b05e5a44c0822f5c301850a
imagePullPolicy: IfNotPresent
+ securityContext:
+ readOnlyRootFilesystem: true
args:
- cleanup
- --containerd-registry-config-path=/etc/cri/conf.d/hosts
- --addr=:8080
readinessProbe:
httpGet:
--- HelmRelease: kube-system/spegel Pod: kube-system/spegel-cleanup-wait
+++ HelmRelease: kube-system/spegel Pod: kube-system/spegel-cleanup-wait
@@ -11,16 +11,26 @@
app.kubernetes.io/managed-by: Helm
annotations:
helm.sh/hook: post-delete
helm.sh/hook-delete-policy: before-hook-creation, hook-succeeded
helm.sh/hook-weight: '1'
spec:
+ securityContext: {}
+ tolerations:
+ - key: CriticalAddonsOnly
+ operator: Exists
+ - effect: NoExecute
+ operator: Exists
+ - effect: NoSchedule
+ operator: Exists
containers:
- name: cleanup-wait
- image: ghcr.io/spegel-org/spegel@sha256:82f5dd969ed74e3a9cfd6284045099a161778a0d85f9e01a234a62f15eb9d696
+ image: ghcr.io/spegel-org/spegel@sha256:b48194957bf9b5bdcea2700536a302ade23315082b05e5a44c0822f5c301850a
imagePullPolicy: IfNotPresent
+ securityContext:
+ readOnlyRootFilesystem: true
args:
- cleanup-wait
- --probe-endpoint=spegel-cleanup.kube-system.svc.cluster.local.:8080
restartPolicy: Never
terminationGracePeriodSeconds: 0
|
tinfoild
Bot
force-pushed
the
renovate/spegel-0.x
branch
from
April 27, 2026 11:44
6a46eed to
1adc583
Compare
tinfoild
Bot
force-pushed
the
renovate/spegel-0.x
branch
from
May 15, 2026 18:39
1adc583 to
2a03397
Compare
Contributor
Author
kube/kustomization/out00--- kube/deploy/core/spegel/app Kustomization: flux-system/spegel-app HelmRelease: kube-system/spegel
+++ kube/deploy/core/spegel/app Kustomization: flux-system/spegel-app HelmRelease: kube-system/spegel
@@ -12,13 +12,13 @@
spec:
chart: spegel
sourceRef:
kind: HelmRepository
name: spegel
namespace: flux-system
- version: 0.6.0
+ version: 0.7.4
driftDetection:
ignore:
- paths:
- /spec/replicas
mode: warn
install: |
tinfoild
Bot
force-pushed
the
renovate/spegel-0.x
branch
from
May 21, 2026 11:10
2a03397 to
533565d
Compare
tinfoild
Bot
force-pushed
the
renovate/spegel-0.x
branch
from
June 8, 2026 20:59
533565d to
2cae661
Compare
tinfoild
Bot
force-pushed
the
renovate/spegel-0.x
branch
2 times, most recently
from
June 19, 2026 12:33
3d75fdf to
989843c
Compare
tinfoild
Bot
force-pushed
the
renovate/spegel-0.x
branch
from
July 1, 2026 15:07
989843c to
940a60c
Compare
tinfoild
Bot
force-pushed
the
renovate/spegel-0.x
branch
2 times, most recently
from
July 20, 2026 10:13
d24e170 to
488a0ec
Compare
Contributor
|
SECURITY VULNERABILITIES FOUND BY CIEL
Severity Summary
ResultsPackage: spegel
Vulnerabilities in version 0.6.0No known vulnerabilities found in the spegel package itself across all 8 sources. Vulnerabilities in version 0.7.4No known vulnerabilities found. Non-applicable findings (verified and excluded)
Changelog Security Highlights (0.6.0 → 0.7.4)The spegel v0.7.4 changelog and dependency analysis reveals security fixes for the following transitive dependencies that ship with the spegel container images:
Recommendations
|
tinfoild
Bot
force-pushed
the
renovate/spegel-0.x
branch
from
July 27, 2026 02:52
488a0ec to
10411ea
Compare
tinfoild
Bot
force-pushed
the
renovate/spegel-0.x
branch
from
October 7, 2026 22:18
10411ea to
882c16c
Compare
tinfoild
Bot
force-pushed
the
renovate/spegel-0.x
branch
from
October 16, 2026 17:44
882c16c to
0f2c7bc
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.6.0→0.8.0Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Configuration
📅 Schedule: (in timezone Asia/Singapore)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate.